# -*- coding:utf-8 -*-
import json
import logging
import os
import re

from langchain import FAISS, OpenAI
from langchain.embeddings import OpenAIEmbeddings
from langchain.schema import Document

# @Time    : 2023/5/12 16:57
# @Author  : lishuaichao
# @Email   : lishuaichao@lingxi.ai
# @File    : faq.py
# @Software: LLM_internal

# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #

logging.basicConfig(format='%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s',
                    level=logging.INFO)
os.environ["OPENAI_API_KEY"] = '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'


class CuCheng():
    def __init__(self):
        super().__init__()
        self.llm = OpenAI(temperature=0.9)
        self.prompt = (
            "你是一个返回固定内容的机器人,需要根据用户的对话内容返回对应的内容，必须返回内容，但是不能杜撰内容\n"
            "用户的对话内容是:{user_dialogues}\n"
            "如果用户没有强烈拒绝，需要返回：第一步:打开微信；第二步：搜索公众号进行关注；第三步：获取验证码；第四步：输入验证码查看保障内容；第五步：完成支付，查看保单\n"
            "其它情况返回：转人工处理\n"
        )

    def query(self, chat_context: str = None):
        """
        Args:
            chat_context: 聊天的上下文

        Returns: 用户
        ####暂时写死返回内容
        """
        # if chat_context is not None:
        #     lines = chat_context.splitlines()
        #     if len(lines) >= 5:
        #         chat_context = lines[-5:]

        # prompt = self.prompt.format(user_dialogues=chat_context)
        # logging.info(f'prompt:{prompt}')
        # response = self.llm(prompt)
        # logging.info(f'大模型返回:{response}')
        # if response.startswith('无'):
        #     return None
        # else:
        #     return response
        response = "好的，那我带您操作一下，您需要进行如下步骤进行操作: \n 第一步:打开微信；第二步：搜索公众号进行关注；第三步：获取验证码；第四步：输入验证码查看保障内容；第五步：完成支付，查看保单"
        return response


if __name__ == '__main__':
    # faq_save = FaqSave()
    # faq_save.save('knowledge_base/faq_list.json')
    # faq_save.save('knowledge_base/异议处理.json')
    Cucheng = CuCheng()
    context = "坐席: 哎，你好，我是新核保的客户经理，我姓刘，呃，今天致电呢，就是给您做一个回访，就是您之前有免费领取过一个意外险，这个您还记得吧。\n" \
        "用户: 我不记得\n" \
        "坐席: 嗯，那可能是您忙忘了，不过没关系的，呃，本院呢是咱们老客户的服务业，我们是统一给老客户的保单做一个升级，升级成重疾意外，医疗三险合一的，全险是可以很好的，和医社保，新农合来做一个补充，因为咱们医社保呢，是有一定的报销比例嘛，那并且一些进口药，自费药都是没有办法报销的，这个您是知道的。吧。\n" \
        "用户: 好的，带我公众号操作下吧。\n"
    # print(faq_query.query('我不需要,没闲钱', chat_context=context))
    # print(faq_query.query('我有社保,不需要买保险', chat_context=context))
    # print(faq_query.query('我考虑一下好吧,挂了', chat_context=context))
    # print(faq_query.query('我跟我老公商量一下,需要的话我打给你', chat_context=context))
    print(Cucheng.query(chat_context=context))
    # print(faq_query.query('和找保险经纪人买的有什么区别?', chat_context=context))
    # print(faq_query.query('有什么特色服务吗?', chat_context=context))